<HTML>
<HEAD>
<META name="description"
	content="Violet UML Editor cross format document" />
<META name="keywords" content="Violet, UML" />
<META charset="UTF-8" />
<SCRIPT type="text/javascript">
	function switchVisibility() {
		var obj = document.getElementById("content");
		obj.style.display = (obj.style.display == "block") ? "none" : "block";
	}
</SCRIPT>
</HEAD>
<BODY>
	This file was generated with Violet UML Editor 2.1.0.
	&nbsp;&nbsp;(&nbsp;<A href=# onclick="switchVisibility()">View Source</A>&nbsp;/&nbsp;<A href="http://sourceforge.net/projects/violet/files/violetumleditor/" target="_blank">Download Violet</A>&nbsp;)
	<BR />
	<BR />
	<SCRIPT id="content" type="text/xml"><![CDATA[<ClassDiagramGraph id="1">
  <nodes id="2">
    <InterfaceNode id="3">
      <children id="4"/>
      <location class="Point2D.Double" id="5" x="200.0" y="20.0"/>
      <id id="6" value="44ab6c80-8482-4a0d-b393-63f784707289"/>
      <revision>1</revision>
      <backgroundColor id="7">
        <red>255</red>
        <green>255</green>
        <blue>255</blue>
        <alpha>255</alpha>
      </backgroundColor>
      <borderColor id="8">
        <red>0</red>
        <green>0</green>
        <blue>0</blue>
        <alpha>255</alpha>
      </borderColor>
      <textColor reference="8"/>
      <name id="9" justification="1" size="3" underlined="false">
        <text>&lt;interface&gt;
FlashMapManager</text>
      </name>
      <methods id="10" justification="0" size="4" underlined="false">
        <text>retrieveAndUpdate(req, resp) : FlashMap
saveOutputFlashMap(FlashMap, req, resp) : void</text>
      </methods>
    </InterfaceNode>
    <ClassNode id="11">
      <children id="12"/>
      <location class="Point2D.Double" id="13" x="260.0" y="160.0"/>
      <id id="14" value="a9370b53-5135-48ce-a371-2a2b8264253a"/>
      <revision>1</revision>
      <backgroundColor id="15">
        <red>255</red>
        <green>255</green>
        <blue>255</blue>
        <alpha>255</alpha>
      </backgroundColor>
      <borderColor id="16">
        <red>0</red>
        <green>0</green>
        <blue>0</blue>
        <alpha>255</alpha>
      </borderColor>
      <textColor reference="16"/>
      <name id="17" justification="1" size="3" underlined="false">
        <text>AbstractFlashMapManager</text>
      </name>
      <attributes id="18" justification="0" size="4" underlined="false">
        <text></text>
      </attributes>
      <methods id="19" justification="0" size="4" underlined="false">
        <text></text>
      </methods>
    </ClassNode>
    <ClassNode id="20">
      <children id="21"/>
      <location class="Point2D.Double" id="22" x="260.0" y="240.0"/>
      <id id="23" value="0f88be5c-ffaf-4dc6-8f11-87e69c049dda"/>
      <revision>1</revision>
      <backgroundColor reference="15"/>
      <borderColor reference="16"/>
      <textColor reference="16"/>
      <name id="24" justification="1" size="3" underlined="false">
        <text>SessionFlashMapManager</text>
      </name>
      <attributes id="25" justification="0" size="4" underlined="false">
        <text></text>
      </attributes>
      <methods id="26" justification="0" size="4" underlined="false">
        <text></text>
      </methods>
    </ClassNode>
  </nodes>
  <edges id="27">
    <InterfaceInheritanceEdge id="28">
      <start class="ClassNode" reference="11"/>
      <end class="InterfaceNode" reference="3"/>
      <startLocation class="Point2D.Double" id="29" x="80.0" y="10.0"/>
      <endLocation class="Point2D.Double" id="30" x="150.0" y="50.0"/>
      <transitionPoints id="31"/>
      <id id="32" value="0ce543d5-b7b0-4595-8435-70d5caeb8092"/>
      <revision>1</revision>
      <bentStyle name="STRAIGHT"/>
      <startLabel></startLabel>
      <middleLabel></middleLabel>
      <endLabel></endLabel>
    </InterfaceInheritanceEdge>
    <InheritanceEdge id="33">
      <start class="ClassNode" reference="20"/>
      <end class="ClassNode" reference="11"/>
      <startLocation class="Point2D.Double" id="34" x="100.0" y="0.0"/>
      <endLocation class="Point2D.Double" id="35" x="100.0" y="30.0"/>
      <transitionPoints id="36"/>
      <id id="37" value="6649ceb5-63e0-41e9-8bca-9ce9ba00d2d1"/>
      <revision>1</revision>
      <bentStyle name="STRAIGHT"/>
      <startLabel></startLabel>
      <middleLabel></middleLabel>
      <endLabel></endLabel>
    </InheritanceEdge>
  </edges>
</ClassDiagramGraph>]]></SCRIPT>
	<BR />
	<BR />
	<IMG alt="embedded diagram image" src="
mcxRkprblMxMZh1WjtQxMUcymciRmmRM+uOUHOaoTBIzWZPEmkySQ3L64aiYnUlmUlZWJstkMpM+
T718L+/v/b7u9/3uvlfnfd89nn/cXvd1X+/Xdb2v63pcP973/dp++AEhtBj6FFD6e4RQDoIrhOAK
IbhC6Lvl6t//E1whBFcIwRVCcIUQgiuE4AohuEIIwRVCcIUQXCGE4Aqh74ercIBKUA8ePGhsbIzv
rb+/f9WqVSUlJVu2bKFH0XfH1fDwcENDQ57UhbVkyRLl//Dhw8ePH/OsoaqnSjIsUAFwpeHe29u7
du1aB0yaMTQ0VF9fv3LlysHBwdLS0mDEpa7t6OhY+lkyFhYW3FXNzc0bN25My//ixQutdWVlZVq+
UqnUrVu3zMmRI0fKy8uVWZ9OTk5Ge1ZVL1y4kD+lCK6+Fld//PFHZWWl3IqBkydPjo+Ph7nq6uoa
GRmRUVVVlbZeHTt2TPbAwMDVq1dlHD9+3GXQwvL27du0/Crl+vXrMp49e6ZEFS27s7PTnDx9+lTG
5s2bM3lW9VTJ2tpau1aVZ4igJHIlhzr82LoR3umZMTc3Z7YWmTROjMn5+XmtHjKqq6tdBlthwvvG
hw8fHj161NjQFtE5SVt/vJ6dVOE1a9bwFAcld73SKiS3dXV158+fn5mZCXPlhS14dnIyTtJACr49
d+6c7B07djx+/NjrMO1UluZ5dnZWO0BtSm3x7O7uZoig5J6v+vr61q1bF16RsnKlQ1d4qYngyo5b
Hz/LpbulKejE61nVU6KqqgMh5yuUaK6cbty4Yc8Do7latmyZPd9zRyNhOTY2JsOepEdwZQiNjo5q
2XHp5uTixYvmxM5XXs96vXnzJsMCFRJXmc5XaYn2VNAGug5R9tROKdu3b5+amormamhoqKKiQmTq
KpduTsrKyuSkubnZngd6PSNUwFwhBFcIIbhCCK4QgiuEEFwhBFcIwRVCCK4QShpX4f9F96XRh5ku
cT7tFw/37t3z/se7mM7z94PQt+YqKyT5cHXlyhW97enpyZOrPP0glAiuvCG6Dx8+rK+vV4rSXYiu
XXLnzh19VFVVZRHvLkR33759ert7924LfIpwbp9evXq1vLy8rq7uzZs3+fgJRitnyjk9Pa1E1dni
UGLGMjO84Cp3rrwhutXV1bJnZmYsENh+Qm6X7N+/3+J2Ne5d4p49e4TEp88/SN+7d2+0c/v04MGD
/f39MgyknP2kRSt7c7a3t9sv4oM+48QyI7jK/XwVDtG1WA/N9729vRbx4S6xuKa0WCyNTr1ayIbZ
Ec7tU7mdn5+XobLy8ZMWrezNqYXRIrjev38fDuuKiGVGcJXjeuUN0dUhx8aiVFFRoRn9U2QU4/j4
uF5bW1v1OjExEe08zU+Qz3z8ROS04OK0nHFimRFc5ciVN0T30+cAJ22o2tra0pYUL1cyli9fLlcr
VqzI6tyM2dlZW6/EbT5+4tyOirClSYubS4wTy4zgKkeuvCG6dXV1MjTlT01N2eOErFy1tLTYUpPV
uRmHDh3SqijjwIED+fiJczsqQoaOc2YEw5CjY5kRXOXIlTdEVzhpfNtTtYaGhidPnmTl6uzZszK0
Dcvq3Iyenh75b2pqSvtrZ1/qJ87tqIjGxkadoOzxvcr9FC+WGcHVp0L5vcW3H7s6K3Z3dwukyclJ
tzQhVFRclX7WtyxxeHg4lUqpUPs6bmJigqGDio0rhOAKIbiCK4TgCiG4QgiuEEJwhRBcIQRXCCG4
QgiuEIIrhBBcIQRXCMEVQigOVwih/MV6hRD7QITgCiG4giuE4AohuEIIrhBCcIUQXCEEVwghuEII
rhCCK4QQXCFUQFyl/f/Potf3dr/ov+EqlUp53eVfJ/vvpvavvuPfRqYKxK9SdE7v/QalCv/6668J
7GPVanBwMGYLBJVzn3ovqa2tPX/+vHt74cKFjRs3wtVXQcir1tbWPXv22D8ITg5X0Z8uLCysWbPG
/iNr0qRarVu3TjXMrQUWiyslqomsGnqtqqoq4kNHRq5kdHd3//jjj7JnZma2b99eUlLS3NwsOzix
peV0l4cvWbt27eTkpIxXr17V1NR481iLl5WVzc3NLV261A0FK6K6ulqZb968aYnT09NNTU3KPDAw
EIcrGcPDw3Lb2NioayOc/PPPP5pcVdaKFSv6+/vT7tdbbc2+R44cidN0VuiWLVs0sIaGhiLGVlY/
N27cUMqSJUvUnnfu3Im4zY6ODtUw6+iP5ircLBF10Oq9fPnyYH8pUdOl6mZXaRWN9uy9kWLg6vLl
y3aoOHDggGCQcf369UOHDoXHq8vpEsOXuK7t6+vr6urK5Fb27t27ZezYsUPDzhXR2dmpItRJan1X
hJWra2Ny1d7ervwXL17UtRFONLvfvn1bhrZP5eXlaX681dagD46q6Kbbt2+fBpYyyIjmKtqPmsJG
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
3d3dLZA047ilie+v4KqoVPpZ37LE4eHhVCqlQu3ruImJCbiCK5SU/oUruEJwBVcIruAKruAKruAK
wRVcIbiCK7iCK7iCKwRXcIXgCq4YfHAFV3CF4AquEFzBFYIruIIrBFdwheAKrhBcwRVcIbiCKwRX
cIXgCq7gCsEVXCG4gisEV3AFV3AFV3D1lfX8+XO4gqtv0e7fjxoaGn74/gRX/7H+LWqNjY21tbXV
1NRs3br13+9ScAVXi69r167V1dUtLCzU19efOXMGruAKrhZB69evf/TokW5zfHx81apV9+/fhyu4
QnnpxIkThw8fzvQWwRX6Yk1MTKxevfrdu3cuRbvBDRs22PKF4Arlom3bttn/oQzq7t27mzZt8v6v
awRXKIsuXbq0a9cu70ft7e2nT5+mieAKfZlev36d9eudly9f0lBwhfLrJH63BVcIrhAdBlcIruAK
wRWCK7hCcIXgCq4QXCG4gisEVwiu4ArBFYIruEriOEPFLbhi/kb0L1wh+heu4Aqu4Ip2R4vTv/zd
GLhCcAVXCK7gCq7gCq7gCsEVXCG4giu4giu4gisEV3CF4AquGHxwBVdwheAKrhBcwRWCK7iCKwRX
cIXgCq4QXMEVXCG4gisEV3CF4Aqu4ArBFVwhuCpurt6+fbt///5ly5aVlJTotaWlZXx8fFFK+VKA
w39cMmcnmTxPTU3p7b1793L7E5aL5Qeuip+rHTt2KGVkZET27du3Za9Zs+a/qlha3RadqytXruht
T09Pnlzl6Qeuip8rLVNK6e7uTsv28ePHjo6OpZ8lY2FhQYkPHz6sr6/XJWVlZY2NjZOTk5kSg6Pt
yJEjWgnlp7OzMzhAh4aGdOHKlSsHBwejuXrx4oU8y79KSaVSt27dii73zp07+qiqqmp4eNglrl27
dt++fXq7e/duzR3Rzu3Tq1evlpeX19XVvXnzJh8/aXfqzTk9Pa1E1fncuXPOp7cX7NPm5uaNGzfC
VUK50qCxflIHa2Pj0o8dO6bEgYEBjS0Zx48fV2J1dbXsmZkZrW8yNm/enCnRjYzff/9dxvnz53t7
e2WcPHnSfdrV1WWXaDBFc6UBdP36dRnPnj1TSmVlZXS52tk+ffrUrb2WuGfPHiGht7p879690c7t
04MHD/b398swkHL2k3an3pzt7e2yL168GPTp7QX7VFOG9vBwlVCuNM2vW7fO7Wd27txpc7M6W2/n
5+c1ZcrQIFailh0jUJB8+PDBPHgT3cjQSDI/Utpom5ubM1vTdtbzlVano0eP1tbWKmXJkiXR5arO
Yc8anXodGxtzdoRz+1RurdoqKx8/aXfqzamF0Rrq/fv3zqe3F+xTW7vgKrnPA9VnZ8+eXbVqlXVY
Q0ODEtXZwVFufa9zhXW/VFFRoUk0U6IbGbbPdEUHB3oagRHrlW2NdBR8/PixS4wuN+x5fHxcr62t
rXqdmJiIdp7mJ1jtfPxE5LQGT8vp7YXoEx1cJes5u+Y/O4jbGNJhwE38adm0h2lra3OzuDcxPOPa
xB+cceNzVVpaapWxadtliyjX63n58uVytWLFiqzOzZidnbVqi9t8/MS5HRVhDaXFzSV6ewGuCoCr
mpoapdy4ccM9ONaBWHZnZ6fsvr4+2/Bs2bLFHcY0y05NTdkJPlOi63sdCWRcuHDBzlenTp3KgSuD
c3R0VH5cYnS5Xs8tLS221GR1bsahQ4e0Kso4cOBAPn7i3I6KkKHjnBmW6O0FuCqM85XGhyZ77TH0
qgP69PS0LQX2JEqT6/bt2+0bG71qSNmDLG0Xnzx5kinR9b386CBhT7R0Cg/PuHG4Ghoa0nSu6qlK
LjG6XK9nbXdlaBuW1bkZWsDlv6mpyZ4Q5Ownzu2oiMbGRq3ntmtQuZl6Aa4KaR+I8vzqLE/prNjd
3S2QNNO5pYnvr+CqqFT6Wd+yxOHh4VQqpULt67iJiQm4giuUoP6FK7hCcAVXCK7gCq7gCq7gCsEV
XCG4giu4giu4gisEV3CF4AquGHxwBVdwheAKrhBcwRWCK7iCKwRXcIXgCq4QXMEVXCG4gisEV3CF
4Aqu4ArBFVwhuIIrBFdwBVdwBVdwheCqOLhCxS24+o/1LypqwRVcIbiCKwRXcIVQAel/gJfsRTbZ
OOsAAAAASUVORK5C" />
</BODY>
</HTML>